/*
 ============================================================================
 Name		: FEDir.h
 Author	  : goodsea
 Version	 : 1.0
 Copyright   : goodsea
 Description : CFEDir declaration
 ============================================================================
 */

#ifndef FEDIR_H
#define FEDIR_H

// INCLUDES
#include <e32std.h>
#include <e32base.h>
#include <e32cmn.h>
#include <aknlists.h>

class CFEDir : public CBase
{
public:
	~CFEDir();
	static CFEDir* NewL();

public:
	CDir* GetDirectoryAndFileListL(const TDesC& aPath);
	CDir* GetDirectoryAndFileListL(CDir* &aDirList, const TDesC& aPath);
	TInt Delete(const TDesC& aName);
	TInt Rename(const TDesC& anOldName, const TDesC& aNewName);
	void DirectoryAttribute(const TDesC& aDirectoryName, TDes& aProperties);
	TInt Move(const TDesC &anOld, const TDesC &aNew);
	TInt Copy(const TDesC &anOld, const TDesC &aNew);
	TInt GetDirSize(const TDesC& aPath);
	TInt NewFolder(const TDesC& aName);

private:
	TInt GetDirectorySize(const TDesC& aPath, TInt aTotalsize);
	void ConstructL();
	CFEDir();

private:
	RFs &iFs;
	CDir* iDirList;
	CDir* iDirListSelf;
	CFileMan *iFileMan;
};

#endif // FEDIR_H
